import { Model, DataTypes } from 'sequelize';
import db from '../db/mysql'; // 假设这是您的数据库连接实例

class Admin extends Model {
  public id!: number; // 主键
  public username!: string; // 用户名
  public password!: string; // 密码
  public email!: string; // 电子邮件
  public createdAt!: Date; // 创建时间
  public updatedAt!: Date; // 更新时间
}

Admin.init({
  id: {
    type: DataTypes.INTEGER.UNSIGNED,
    autoIncrement: true,
    primaryKey: true,
  },
  username: {
    type: DataTypes.STRING,
    allowNull: false,
    unique: true,
  },
  password: {
    type: DataTypes.STRING,
    allowNull: false,
  },
  email: {
    type: DataTypes.STRING,
    allowNull: false,
    unique: true,
    validate: {
      isEmail: true,
    },
  },
  createdAt: {
    type: DataTypes.DATE,
    allowNull: false,
    defaultValue: DataTypes.NOW,
  },
  updatedAt: {
    type: DataTypes.DATE,
    allowNull: false,
    defaultValue: DataTypes.NOW,
  },
}, {
  sequelize: db.getSequelize(), // 使用您的数据库连接实例
  modelName: 'admin', // 模型名称
  tableName: 'admins', // 表名称
  timestamps: true, // 启用时间戳
});

export default Admin;
